<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>

  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>Filtre AviSynth Levels</title>


  <link rel="stylesheet" type="text/css" href="../../avisynth.css">

</head>


<body>

<h2>
<a name="Levels"></a>Levels
</h2>

<p><code>Levels </code>(<var>clip, int
input_low, float gamma, int input_high,
int output_low, int output_high, bool "coring"</var>)
</p>

<p>Le filtre <code>Levels</code> ajuste la
luminosit&eacute;, le contraste, et le gamma (qui doit &ecirc;tre
&gt; 0). Les param&egrave;tres <var>input_low</var>
et <var>input_high</var>
d&eacute;terminent &agrave; partir de quelle valeur des pixels en entr&eacute;e
sont trait&eacute;s comme &eacute;tant totalement noirs ou
totalement blancs, les param&egrave;tres <var>output_low</var>
et <var>output_high</var> d&eacute;terminent&nbsp;&agrave; partir de quelle valeur les pixels en sortie correspondent &agrave; du noir pur
ou a du blanc pur; Le param&egrave;tre <var>gamma</var>
contr&ocirc;le le degr&eacute; non lin&eacute;aire de cette
conversion. Plus pr&eacute;cis&eacute;ment, voici exactement la
fonction utilis&eacute;e:<br>

</p>

<blockquote>output = [(input - input_low) / (input_high -
input_low)]<sup>1/gamma</sup>
(output_high - output_low) + output_low</blockquote>

C'est un des filtres qui serait tr&egrave;s pratique &agrave;
utiliser avec une GUI (interface graphique). Puisqu'aucune GUI n'existe
(du moins pas dans l'&eacute;tat actuel d'AviSynth),
j'ai d&eacute;cid&eacute; que ce filtre devrait au moins
&ecirc;tre compatible avec la version de level de VirtualDub quand
le clip est en RGB. Dans ce cas, vous devriez pouvoir copier les
valeurs indiqu&eacute;es dans la boite de dialogue de VirtualDub et
de les indiquer en tant que param&egrave;tres au filtre&nbsp;<code>Levels</code>
afin d'obtenir le m&ecirc;me r&eacute;sultat. Cependant, les
param&egrave;tres d'entr&eacute;e et de sortie peuvent
&ecirc;tre plus grand que 255.
<p>Quand le filtre travaille avec des donn&eacute;es dans le
format YUV, il corrige seulement le gamma de la luminance et pas de la
chrominance. La correction gamma est un concept li&eacute; au
format de couleur RGB, et je ne sais pas vraiment comment faire
&ccedil;a correctement dans le format YUV. Cependant, avec <var>gamma</var>
= 1.0, le filtre devrait avoir le m&ecirc;me effet en RGB qu'en
YUV. Pour ajuster la luminosit&eacute; ou le contraste,&nbsp;mieux vaux&nbsp;utiliser <a href="tweak.htm">Tweak</a>
ou <a href="coloryuv.htm">ColorYUV</a>, puisque <code>Levels</code>
change &eacute;galement la chrominance du clip.
</p>

<p>Dans <em>v2.53</em>, un param&egrave;tre
suppl&eacute;mentaire a &eacute;t&eacute;
ajout&eacute;: <var>coring</var>
= <var>true/false</var>(vrai/faux) (vrai par
d&eacute;faut, ce qui permet de retrouver le comportement des
anciennes versions du filtre). Quand il est sur true(vrai), cela veut
dire que la luminance est restreinte &agrave; la plage de valeurs
[16,235] &agrave; la fois pour l'entr&eacute;e et la sortie
(cela veut dire que la plage [0,16] est forc&eacute;e &agrave;
16, et que la plage [235,output_high]
est forc&eacute;e &agrave;&nbsp;235). Quand ce
param&egrave;tre est sur&nbsp;false(faux), cela veut dire que
la luminance est limit&eacute; &agrave; la plage de valeurs
[0,255] (cela veut dire que la plage de valeurs de sortie&nbsp;
[255,output_high] est forc&eacute;e &agrave; 255).
</p>

<pre># Ne fait rien sur un clip compris dans la plage [16,235],<br>mais restreint un clip compris dans la plage [0,255] &agrave; la plage [16,235]:<br>Levels(0, 1, 255, 0, 255)<br><br># La luminance est limit&eacute; &agrave; [16,235] et la conversion [0,255]-&gt;[16,235] &agrave; lieu:<br># exemple: les valeurs de la luminance dans la plage [0,16] sont toute converties &agrave; 30<br>Levels(0, 1, 255, 16, 235)<br><br># Corrige le gamma d'une image pour un affichage dans un environnement plus lumineux:<br># exemple: une luminance de 16 reste &agrave; 16, 59 est chang&eacute;e en 79, etc.<br>Levels(0, 1.3, 255,0, 255)<br><br># Inverse l'image (fait un n&eacute;gatif photo):<br># exemple: une luminance de 16 est chang&eacute;e en 235<br>Levels(0, 1, 255, 255, 0)<br><br># Ne fait rien sur un clip compris dans la plage [0,255] ; Ne fait rien sur un clip compris dans la plage [16,235]:<br>Levels(0, 1, 255, 0, 255, coring=false)<br><br># Applique un facteur d'&eacute;chelle &agrave; un clip compris dans la plage [0,255] pour le mettre dans la plage [16,235]:<br>Levels(0, 1, 255, 16, 235, coring=false) # Revient au m&ecirc;me que ColorYUV(levels="PC-&gt;TV")<br><br># Applique un facteur d'&eacute;chelle &agrave; un clip compris dans la plage [16,235] pour le mettre dans la plage [0,255]:<br>Levels(16, 1, 235, 0, 255, coring=false) # Revient au m&ecirc;me que ColorYUV(levels="TV-&gt;PC")</pre>

<p><kbd>$English Date: 2004/07/04 19:37:46 $<br>

French translation date: 2006/02/05 JasonFly <a href="mailto:macpaille@users.sourceforge.net">macpaille@users.sourceforge.net</a></kbd>
</p>

<form><input value="Retour" onclick="history.go(-1)" type="button"></form>

</body>
</html>
